1. Field of the Invention
This invention relates generally to data storage device servo control systems and, more particularly, to detecting errors resulting from the demodulation of servo track identification information that is used to determine the location of a read/write head relative to disk tracks.
2. Description of the Related Art
In conventional computer data storage systems having a rotating storage medium, such as a magnetic or magneto-optical disk, data is stored in a series of concentric or spiral tracks across the surface of the disk. The data comprises a series of variations in disk surface magnetic orientation recorded laterally in the tracks. A magnetic read/write head suspended over the disk surface transduces the variations in magnetic orientation and produces a readback signal. The variations in magnetic orientation, generally comprising reversals of magnetic flux, represent binary digits of ones and zeroes that in turn represent data. The magnetic read/write head detects the variations in magnetic orientation and generates the readback signal as the disk rotates relative to the read/write head at thousands of revolutions per minute.
Reading and recording data in a desired one of the tracks requires knowledge of the track over which the read/write head is positioned and requires precise centering of the read/write head over the track as the disk rotates. Conventionally, the read/write head is mounted on a disk arm that is moved by a servo. A disk drive servo control system controls movement of the arm radially across the disk to move the read/write head from track to track in a seek operation and, once over a selected track, to maintain the head in a path centered over the track in a track-following operation.
A servo control system moves the read/write head to a desired track and maintains the head centered over a track by reading servo information from the disk surface. The servo information comprises a pattern of high-frequency magnetic flux transitions, generally flux reversals, that are pre-recorded in the tracks at the time of disk manufacture. A servo read head, which can be either the same head used for reading the binary data or can be a dedicated servo head, transduces the servo information and produces a servo signal.
There are a variety of methods for providing servo information to a disk servo control system. In a method referred to as the dedicated servo method, the entire surface of one disk is provided with servo information. A servo magnetic head is positioned over the dedicated servo disk surface in a fixed relationship relative to one or more data read/write heads positioned over other data disk surfaces. The position of the servo head is used to indicate the position of the data read/write heads. The dedicated servo method is most often used with multiple disk systems, because a dedicated servo system for a single disk application would use one-half of the available disk surface area for servo information and therefore would not be especially efficient.
Another method of providing servo information is known as the sector servo method. In the sector servo method each disk surface includes servo information and binary data within a single track. The tracks on a sector servo disk surface are divided into radial sectors having a short servo information field followed by a data field. The servo information field includes a sector or address marker, which indicates to the read/write head that servo information immediately follows in the track, a track identification number, and a high-frequency servo burst pattern. The sector servo method is more efficient than the dedicated servo method for low-profile disk drives with fewer disks in the configuration, because a single read/write head can be used to obtain the servo information and to read and record data from the disk and also because less of the total disk surface area is used for servo information. The remaining description assumes a sector servo system, but it will be clear without further explanation to those skilled in the art how the description can be applied to dedicated servo systems.
The portion of the servo information comprising the track identification number is typically recorded as digital information and the portion comprising the servo burst pattern is typically recorded as analog information. That is, the magnetic flux transitions comprising the track number define a binary value, while the servo burst pattern produces an analog position error signal (PES), the magnitude of which indicates the position of the read/write head relative to the track centerline. The servo control system includes demodulation circuitry to distinguish between the two portions of the servo signal.
Because the PES indicates position of the servo head within a single track, the PES provides a fine position control for the disk arm servo. To provide such fine position control, the PES servo burst pattern typically repeats every few tracks, which limits its effectiveness in determining absolute track location on the disk. In contrast, the digital encodement of the track identification number indicates servo head position within an absolute track location of plus or minus one track and therefore provides coarse disk arm position control.
The coarse disk arm position information is useful during a seek operation, when the servo head is travelling too fast to demodulate the PES pattern or when the servo head position is otherwise known only to within the repetition of the PES pattern cycle and not in absolute track terms. The digital encodement of the track identification number also permits additional information to be encoded as well, such as the head number and sector number. Such information is collectively referred to as the cylinder address or track ID information.
Sector servo disk drives typically encode the track identification number using what is known as a gray code. A gray code provides a sequence of binary numbers in which only one digit changes state from one code value to the next. For example, in a conventional 3-bit binary representation, the binary code representation from the number three to the number four changes from "011" to "100", comprising a state change in each of the three digits. That is, the first most significant bits (digits decrease in significance from the left to the right) changes state from zero to one while the second bit and third or least significant bit change state from one to zero. A gray code maps each binary number to a binary representation such that only one bit changes state for each number in the sequence.
An example of a typical 3-bit gray code is provided in the following table:
TABLE 1 ______________________________________ Binary-to-gray-code mapping. Binary number Gray code equivalent ______________________________________ 000 000 001 001 010 011 011 010 100 110 101 111 110 101 111 100 ______________________________________
Those skilled in the art should be able to complete the code table, using the rule that the single least significant bit is changed with each new number to obtain the next gray code equivalent. From the table, it should be clear that only one digit changes value at a time. Thus, the change from the number three to the number four involves a change only to the most significant bit "010" to "110").
Gray code numbering schemes are advantageous in servo track identification encodement because the track identification number representation for adjacent tracks will be guaranteed to differ by only one bit. Thus, if the servo control system attempts to decode the track identification number while moving in a seek operation between two tracks, the number decoded by the system will be off the true number by at most one track.
Typically, a gray code for track identification encodement is implemented with each code bit requiring two flux transitions. Using two flux transitions to encode a bit preserves the magnetization sequence of the signals from the respective binary digits between tracks. A commonly used scheme, known as "Pennington code", encodes a zero as "01" and a one as "10", achieving the same preservation of magnetization. The Pennington code will necessarily contain the gray code, plus bits added for the purposes of preserving the magnetization. Thus, a typical prior art technique for decoding a track ID is to simply extract the half of the Pennington code that contains the gray code that identifies the track, and positioning the head accordingly. The other half of the code is simply ignored by prior art systems.
The prior art has used a technique of bit-by-bit comparison method when a single defect is noted in a Pennington code address. Unfortunately, the prior art has not provided a technique for easily identifying errors that may exist in the Pennington code. Yet errors occur quite frequently. A common error that occurs involves missing a bit or detecting an extra bit. Such a condition leads to faulty or error-ridden Pennington code. An error in the interpretation of even a simple 4-bit gray code could result in an identifying track number that is off by up to 8 tracks. This would be the case if the gray code "0" in the most significant bit is interpreted as a "1" (e.g., interpreting "0001" to be "1001"). The problems created by such errors are even worse if the Pennington code contains a large number of bits. For example, if the binary representation of a cylinder address is as many as 13 or 14 bits, an error in interpreting its most significant bit would result in an address being used for positioning the head that is thousands of tracks away from the real track location. Clearly, there is a long-felt need for a method, system, or apparatus that can easily ensure the reliability of an address encoded according to a Pennington Code scheme.